package com.evildog.workspace.dependencies.mybatis.annotation;


import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 分页查询的逻辑删除字段
 *
 * @author evildog
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface QueryTableLogic {

    /**
     * 逻辑删除字段
     * 通常情况，系统的逻辑删除字段值只会存在一种 (￢_￢)
     */
    String logicField() default "is_deleted";

    /**
     * 逻辑删除字段数组
     * 与logicField最好只存在一个
     */
    String[] logicFieldArray() default {};

    @AliasFor("tableAlias")
    String[] value() default {};

    /**
     * 所有需要进行逻辑删除片段的表别名
     */
    @AliasFor("value")
    String[] tableAlias() default {};
}
